<!DOCTYPE html>
<html lang='en'>

<head>
    <meta charset='UTF-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>vue</title>
    <script src='https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js'></script>
</head>

<body>
    <div id='app'>
        <input type="text" ref="game" />
        <hr />
        <div ref="dinner">今晚吃鸡</div>
        <hr />

        <button @click="handleClick">click</button>
        <child ref="mychild"></child>
    </div>
</body>
<script>
    Vue.component("child", {
        data() {
            return {
                hero: "剑圣"
            }
        },
        template: `<div>child--{{hero}}</div>`
    })
    let vm = new Vue({
        el: '#app',
        methods: {
            handleClick() {
                console.log(this.$refs);
                console.log(this.$refs.game, this.$refs.game.value);
                console.log(this.$refs.dinner);
                // console.log(this.$refs.mychild);
                // 写数据
                console.log(this.$refs.mychild.hero = '兽王');
            }
        }
    });
    /*
        ref
            ref 绑定 dom 节点，获取 dom 对象
            ref 绑定组件，获取组件对象
            缺点：不建议使用，不好管理。之前只能通过状态，父传子的属性。
                  ref 容易造成数据流紊乱，一旦 bug， 不好确定谁操作了数据。    
    */
</script>

</html>